<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 <meta http-equiv="content-style-type" content="text/css" />
 <meta name="author" content="Wilbert Dijkhof, Arlsair" />
 <meta name="date" content="2003-07-09" />
 <title>ImageReader / ImageWriter Filter</title>
 <link rel="stylesheet" type="text/css" href="../../style.css" />
 <style type="text/css">td {vertical-align:top;}</style>
</head><body>
<h3><a name="ImageReader"></a>ImageReader / ImageWriter</h3>

<tt>ImageWriter(</tt><i>clip, string &quot;path&quot;, int &quot;begin&quot;, int &quot;end&quot;, string &quot;format&quot;</i><tt>)</tt><br />
<tt>ImageReader</tt>(<i>string &quot;path&quot;, int &quot;begin&quot;, int &quot;end&quot;, int &quot;fps&quot;, bool &quot;use_DevIL&quot;</i>)<br />
<br />
<tt>ImageWriter</tt> (verf&uuml;gbar mit beschr&auml;nkter Funktion seit AviSynth v2.51, voll funktionsf&auml;hig seit AviSynth v2.52) schreibt Frames aus einem Clip als Bilder auf die Festplatte.<br />
<br />
<i>path</i> ist der Verzeichnispfad + Dateiname der zu speichernden Bilder, Standard ist "c:\". <i>format</i> ist das Bildformat (siehe unten f&uuml;r die unterst&uuml;tzten Formate). Die Bilder haben Dateiname wie folgt: [path]000000.[format], [path]000001.[format], usw. .<br />
<br />
Die m&ouml;glichen Werte f&uuml;r <i>format</i> sind:<br />
*bmp, dds, ebmp*, jpg/jpe/jpeg, pal, pcx,<br />
*png, pbm/pgm/ppm, raw, sgi/bw/rgb/rgba, tga, tif/tiff<br />
<br />
<i>begin</i> und <i>end</i> schlie&szlig;en den Framebereich ein, der gespeichert wird. Der Standardwert f&uuml;r beide ist 0 (wobei <i>end</i>=0 ein offenes Ende bedeutet).<br />
<br />
Der Farbraum der Quelle muss RGB24 sein f&uuml;r alle Formate au&szlig;er &quot;ebmp&quot;, welches alle Farbr&auml;ume unterst&uuml;tzt (RGB32, RGB24, YUY2, YV12). Die gespeicherten &quot;ebmp&quot; Dateien, die aus einer RGB Quelle stammen, sind normale BMP Dateien, die aus einer YUV Quelle stammen, k&ouml;nnen wom&ouml;glich nur mit AviSynth's <tt>ImageReader</tt> gelesen werden.<br />
<br />
<tt>ImageReader</tt> ist verf&uuml;gbar seit AviSynth v2.52 und ersetzt WarpEnterprises' Plugin.<br />
<br />
<i>file</i>: Name der Bilddatei(en), wobei man die Frames mit der <a href="http://www.cplusplus.com/ref/cstdio/sprintf.html">sprintf Syntax</a> durchnummerieren kann. Zum Beispiel k&ouml;nnen die Dateien, die von <tt>ImageWriter</tt>'s Standard Parametern erzeugt werden, mit <tt>&quot;C:\%06d.ebmp&quot;</tt> gelesen werden.<br />
<br />
<i>start, end</i>: Falls ein Frame, der nicht in diesem Bereich ist, gefordert wird, wird ein schwarzer Frame wiedergegeben und es wird kein Bild geladen. <i>end=0</i> bedeutet NICHT, dass bis zum Ende gelesen wird wie bei <tt>ImageWriter</tt>. Die erste Datei (entspricht der ersten Datei von <i>file</i>) MUSS existieren, damit die Bildeigenschaften korrekt gelesen werden.<br />
<br />
<i>fps</i>: Frames pro Sekunde des Ziel-Clips. Da nur Integer-Werte erlaubt sind, werde ich vielleicht noch einen Dezimalterm hinzuf&uuml;gen, falls dieser unbedingt notwendig ist.<br />
<br />
<i>use_devil</i>: Wenn auf <i>false</i> gesetzt, wird versucht, die erste Datei als EBMP zu lesen. Ist dies nicht m&ouml;glich wird automatisch zu DevIL gewechselt. Wenn auf <i>true</i> gesetzt, wird direkt mit DevIL gelesen. Man wird dies nur brauchen, wenn man BMP Dateien nicht mit <tt>ImageReader</tt>'s eingebauten (E)BMP Parser lesen will.<br />
<br />
Der Ziel-Videoclip ist in RGB24, wenn DevIL verwendet wurde, ansonsten in dem Farbraum, in dem die EBMP Dateien waren (alle AviSynth Farbr&auml;ume werden unterst&uuml;tzt).<br />
<br />
Bekannter Fehler: komprimierte Bildformate werden verkehrt herum gelesen von DevIL.<br />
<br />
<table border="1" width="75%">
 <tr>
  <td>
   <tt>
    Beispiele:<br />
    <br />    
    # Schreibt Frame 100 in &quot;D:\000000.BMP&quot;:<br />
    ImageWriter(&quot;C:\&quot;, 100, 100, &quot;BMP&quot;)<br />
    <br />
    # Liest Bilder von 0 bis 1000 (bei 24 fps):<br />
    ImageReader(&quot;C:\&quot;, 0, 1000, 24, false)
   </tt>
  </td>
 </tr>
</table>
<br />
<form action=""><input type="button" value="Zur&uuml;ck" onclick="history.go(-1)" /></form>
</body>
</html>
